package com.example.byteoutputstream;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;

public class ByteStreamDemo4 {
    public static void main(String[] args) throws IOException {
        /**
         * byte:字节
         * char:字符
         * String:字符串
         */
        /**
         * Java支持多种字符编码，其中UTF-8和UTF-16是最常用的。中文字符在不同编码下占用的字节数不同：
         * UTF-16编码：在UTF-16编码中，中文字符通常占用2个字节（16位）。Java默认使用UTF-16编码来表示char和String。
         * UTF-8编码：在UTF-8编码中，中文字符占用3个字节。UTF-8是一种可变长度的编码方式，因此在处理中文时，UTF-8比UTF-16节省空间（尤其是对英文字符时）。
         */
        /**
         * 输入中文：当你从键盘输入中文或从文件读取中文时，Java会根据当前操作系统的默认编码（通常是UTF-8或GBK）来处理字符编码。在开发时，确保你使用的编码和操作系统的默认编码一致。
         * 输出中文：在Java控制台输出中文时，默认的字符编码应支持中文字符（例如UTF-8）。如果你发现控制台输出乱码，可以尝试设置控制台编码或使用IDE设置默认编码为UTF-8。
         */

        //创建对象
        FileOutputStream fos = new FileOutputStream("src/com/example/file/a.txt", true);

        //写出数据
        String str = "This is a test";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));
        fos.write(bytes);

        String string = "\n";
        fos.write(string.getBytes());

        String s = "This is a test";
        fos.write(s.getBytes());

        //释放资源
        fos.close();

    }
}
